با استفاده از داده های زلزله ها در ایران و جهان به سوالات زیر پاسخ دهید.


۱. با استفاده از داده های historical_web_data_26112015.rds و استفاده از نمودار پراکنش سه بعدی بسته plotly نمودار طول، عرض و عمق زلزله ها را رسم نمایید. علاوه بر آن بزرگی هر نقطه را برابر بزرگی زمین لرزه قرار دهید.


۲. پویانمایی سونامی های تاریخی را بر حسب شدت بر روی نقشه زمین رسم نمایید.(از داده زلزله های بزرگ استفاده نمایید.)


۳. نمودار چگالی دو بعدی زلزله های تاریخی ایران را رسم کنید.( از داده iran_earthquake.rds و لایه stat_density_2d استفاده نمایید).

زلزله های بزرگتر از ۵ ریشتر فقط نمایش داده شده اند.


۴. احتمال اینکه در ایران در پنج سال آینده زلزله به بزرگی هفت ریشتر رخ دهد را محاسبه کنید. (از احتمال شرطی استفاده کنید.)

به دلیل ناقص بودن داده های زلزله های ۷ ریشتری، داده ها از ویکیپدیا استخراج شد.

library(readr)
library(ggplot2)



#d = data %>% select(OriginTime, Mag) 
#d %>% filter(Mag >= 7) %>% mutate(year = substr(OriginTime, 1,4)) -> d


#d %>% mutate(lastyear = 2) -> d

#for (i in 1:(nrow(d) - 1)){
#  x = d[i,]
#  y = d[i + 1, ]
#  x$lastyear = as.integer(x$year) - as.integer(y$year)
#  d[i,] = x
#}


year = c(856,2013, 1721, 1042, 1990, 1978, 1968, 2017, 1997, 1909, 1947, 1929, 1930, 1981, 1962, 1957, 1957)
year = sort(year)
last = list()
for (i in 1:(length(year) - 1)){
  last[i] = year[i+1] - year[i] 
}

# A|B = AB / B B = > 1 A = < 6
ab = 0
b = 0
for (i in 1:(length(last))){
  x = last[i]
  if(x >= 1)
    b = b + 1
  if ((x >= 1) && (x <= 6))
    ab = ab + 1
}

print(ab/b)
## [1] 0.3333333

۵. بر اساس داده های زلزله های بزرگ ابتدا تعداد و متوسط کشته زلزله ها را بر حسب کشور استخراج نمایید. سپس نمودار گرمایی تعداد کشته ها را بر روی کره زمین رسم نمایید.(مانند مثال زیر!)

متوسط تعداد کشته ها

کل تعداد کشته ها


۶. با استفاده از داده لرزه های بزرگ و به وسیله طول، عرض، شدت، عمق مدلی برای پیش بینی تعداد کشته های زلزله بیابید.

library(readr)
library(dplyr)
library(ggplot2)
library(maps)
library(ggmap)


data = read.delim("~/Downloads/week_11/week_11/data/disaster.txt", sep = "\t", dec = ".")
data = data %>% select(lat = LATITUDE, long = LONGITUDE, country = COUNTRY, deaths = DEATHS, depth = FOCAL_DEPTH, mag = EQ_MAG_MS) 
data = na.omit(data)

fit = lm( deaths ~ lat + long + depth + mag, data = data)
summary(fit)
## 
## Call:
## lm(formula = deaths ~ lat + long + depth + mag, data = data)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -13875  -4526  -2207    303 309698 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -22670.392   4475.492  -5.065 5.03e-07 ***
## lat             89.003     30.722   2.897  0.00387 ** 
## long            -1.997      7.911  -0.252  0.80080    
## depth          -24.770     20.418  -1.213  0.22543    
## mag           3768.090    660.071   5.709 1.59e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 18000 on 826 degrees of freedom
## Multiple R-squared:  0.04131,    Adjusted R-squared:  0.03666 
## F-statistic: 8.897 on 4 and 826 DF,  p-value: 4.903e-07
fit
## 
## Call:
## lm(formula = deaths ~ lat + long + depth + mag, data = data)
## 
## Coefficients:
## (Intercept)          lat         long        depth          mag  
##  -22670.392       89.003       -1.997      -24.770     3768.090

۷. با استفاده از داده worldwide.csv به چند سوال زیر پاسخ دهید. تحقیق کنید آیا می توان از پیش لرزه، زلزله اصلی را پیش بینی کرد؟

زلزله های بیشتر از ۵ را در نظر گرفتیم و زلزله هایی که در نزدیکی آنها و حداکثر ۲ ساعت قبل و کمتر از ۴ ریشتر بودند را پیش لرزه آنها. سپس برای هر زلزله میانگین پیش لرزه ها محاسبه شد و از تست فرض کورلیشن برای بررسی رابطه این دو استفاده شد. پی ولیو زیاد است بنابراین نمیتوان گفت که بین بزرگی پیش لرزه و بزرگی زلزله رابطه ای برقرار است. حال تست فرضی بین بزرگی زلزله و تعداد پیش لرزه انجام شد و بین آنها طبق پی ولیو رابطه ای وجود دارد. پس میتوان گفت هرچه تعداد پیش لرزه بیشتر احتمال بزرگ بودن زلزله نیز بیشتر است.

## 
##  Pearson's product-moment correlation
## 
## data:  avg$main and avg$avg
## t = 0.23251, df = 38, p-value = 0.8174
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.2770713  0.3451481
## sample estimates:
##        cor 
## 0.03769117
## 
##  Pearson's product-moment correlation
## 
## data:  avg$main and avg$cnt
## t = 1.3507, df = 38, p-value = 0.1848
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.1044365  0.4926953
## sample estimates:
##      cor 
## 0.214036

۸. گزاره " آیا شدت زلزله به عمق آن بستگی دارد" را تحقیق کنید؟ (طبیعتا از آزمون فرض باید استفاده کنید.)

library(readr)

data = read_csv("~/Downloads/week_11/week_11/data/worldwide.csv")

cor.test(data$mag, data$depth)
## 
##  Pearson's product-moment correlation
## 
## data:  data$mag and data$depth
## t = 50.03, df = 60629, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.1914584 0.2067469
## sample estimates:
##       cor 
## 0.1991147

۹. میانگین سالانه زلزله ها را بر حسب کشور به دست آورید. آیا میتوان دلیلی در تایید یا رد تئوری هارپ ارائه کرد.

طبق کد زیر، میانگین سالانه زلزله کشورها محاسبه شده و به ازای هر کشور روی میانگین سالانه آن کشور در سالهای مختلف تست فرض استفاده شده و از آن جایی که هیچ فرض ۰ ای در هیج کشوری رد نشده، بنابراین میانگین هر کشور تغییر محسوسی نکرده پس هارپ بی معنی است.

library(readr)

#x = read_csv("~/Downloads/week_11/week_11/data/worldwide.csv")

#x %>% select(mag, time, place) -> x
#x %>% mutate(country = "", year = 0) -> x

#for (i in 1:nrow(x)){
#  t = x[i,]
#  s = t$place
#  s = strsplit(s, ",\\s")
#  s = s[[length(s)]]
#  s = s[[length(s)]]
#  t$country = s
#  x[i,] = t
  
#  t = x[i,]
#  s = t$time
#  s = substring(s, 1, 4)
#  t$year = s
  
#  x[i,] = t
  
  
  
#}

#x %>% select(mag, year, country) -> x 
#x %>% group_by(year,country) %>% summarise(average = mean(mag)) -> ave
#View(ave)
#write_csv(ave, "~/Desktop/Data Analysis/conavge.csv")
ave = read_csv("~/Desktop/Data Analysis/conavge.csv")

countries = unique(ave$country)

p = list()
for (i in 1:(length(countries))){
  t = countries[i]
  
  ave %>% filter(country == t) -> s
  if(nrow(s) == 1){
    p[[i]] = 1
  }
  else{
    z = chisq.test(s$average)
    p[[i]] = z$p.value
  }
  if(p[[i]] < 0.1)
    print(t)
}

۱۰. سه حقیقت جالب در مورد زلزله بیابید.

زلزله سالیانه ۸۰۰۰ آدم را میکشد و در ۴۰۰۰ سال گذشته ۱۳ میلیون نفر را کشته است.

در نیم کره شمالی زمین تعداد زلزله بیشتری نسبت به نیم کره جنوبی رخ میدهد.

طولانی ترین زلزله ۲۰۰۴ در اقیانوس هند بوده که ۱۰ دقیقه طول کشیده است.

سالیانه ۱۳۰۰۰۰۰ زلزله رخ میدهد که زیر ۳ ریشتر اند.